package fachada;

import java.util.List;

import exceptions.UsuarioExistenteException;

import basicas.Atracao;
import basicas.Compra;
import basicas.ObjetoGeral;
import basicas.Ocorrencia;
import basicas.Passe;
import basicas.Usuario;
import regra.IRNAtracao;
import regra.IRNCompra;
import regra.IRNObjetoGeral;
import regra.IRNOcorrencia;
import regra.IRNPasse;
import regra.IRNUsuario;
import regra.RNAtracao;
import regra.RNCompra;
import regra.RNObjetoGeral;
import regra.RNOcorrencia;
import regra.RNPasse;
import regra.RNUsuario;

public class Fachada implements IFachada{


	private IRNAtracao regraAtracao = new RNAtracao();
	private IRNCompra regraCompra = new RNCompra();
	private IRNObjetoGeral regraObjetoGeral = new RNObjetoGeral();
	private IRNOcorrencia regraOcorrencia = new RNOcorrencia();
	private IRNPasse regraPasse = new RNPasse();
	private IRNUsuario regraUsuario = new RNUsuario();
	
	
	
	/* (non-Javadoc)
	 * @see fachada.IFachada#inserirCompra(basicas.Compra)
	 */
	
	@Override
	public  void inserirCompra(Compra a){
		regraCompra.inserir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#excluirCompra(basicas.Compra)
	 */
	
	@Override
	public  void excluirCompra(Compra a){
		regraCompra.excluir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarCompraPorId(java.lang.Integer)
	 */
	
	@Override
	public  Compra consultarCompraPorId(Integer id){
		return regraCompra.consultarPorId(id);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarTodosCompra()
	 */
	
	@Override
	public  List<Compra> consultarTodosCompra(){
		return regraCompra.consultarTodos();
	}
	
	/* (non-Javadoc)
	 * @see fachada.IFachada#alterarCompra(basicas.Compra)
	 */
	
	@Override
	public  void alterarCompra(Compra a){
		regraCompra.alterar(a);
	}
	

	/**
	 * USUARIO
	 */
	
	@Override
	public  void inserirUsuario(Usuario a)throws UsuarioExistenteException{
		regraUsuario.inserir(a);
	}

	
	@Override
	public  void excluirUsuario(Usuario a){
		regraUsuario.excluir(a);
	}

	
	@Override
	public  Usuario consultarUsuarioPorId(Integer id){
		return regraUsuario.consultarPorId(id);
	}

	
	@Override
	public  List<Usuario> consultarTodosUsuario(){
		return regraUsuario.consultarTodos();
	}
	
	
	@Override
	public  void alterarUsuario(Usuario a){
		regraUsuario.alterar(a);
	}


	@Override
	public Usuario consultarUsuarioPorEmail(String email) {
		return regraUsuario.consultarPorEmail(email);
	}

	/**
	 * ATRACA0
	 */
	@Override
	public  void inserirAtracao(Atracao a){
		regraAtracao.inserir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#excluirAtracao(basicas.Atracao)
	 */
	
	@Override
	public  void excluirAtracao(Atracao a){
		regraAtracao.excluir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarAtracaoPorId(java.lang.Integer)
	 */
	
	@Override
	public  Atracao consultarAtracaoPorId(Integer id){
		return regraAtracao.consultarPorId(id);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarTodosAtracao()
	 */
	
	@Override
	public  List<Atracao> consultarTodosAtracao(){
		return regraAtracao.consultarTodos();
	}
	
	/* (non-Javadoc)
	 * @see fachada.IFachada#alterarAtracao(basicas.Atracao)
	 */
	
	@Override
	public  void alterarAtracao(Atracao a){
		regraAtracao.alterar(a);
	}

	
	/* (non-Javadoc)
	 * @see fachada.IFachada#inserirObjetoGeral(basicas.ObjetoGeral)
	 */
	
	@Override
	public  void inserirObjetoGeral(ObjetoGeral a){
		regraObjetoGeral.inserir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#excluirObjetoGeral(basicas.ObjetoGeral)
	 */
	
	@Override
	public  void excluirObjetoGeral(ObjetoGeral a){
		regraObjetoGeral.excluir(a);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarObjetoGeralPorId(java.lang.Integer)
	 */
	
	@Override
	public  ObjetoGeral consultarObjetoGeralPorId(Integer id){
		return regraObjetoGeral.consultarPorId(id);
	}

	/* (non-Javadoc)
	 * @see fachada.IFachada#consultarTodosObjetoGeral()
	 */
	
	@Override
	public  List<ObjetoGeral> consultarTodosObjetoGeral(){
		return regraObjetoGeral.consultarTodos();
	}
	
	/* (non-Javadoc)
	 * @see fachada.IFachada#alterarObjetoGeral(basicas.ObjetoGeral)
	 */
	
	@Override
	public  void alterarObjetoGeral(ObjetoGeral a){
		regraObjetoGeral.alterar(a);
	}
	
	
	
	/**
	 * OCORRENCIA
	 */
	
	@Override
	public  void inserirOcorrencia(Ocorrencia a){
		regraOcorrencia.inserir(a);
	}

	
	@Override
	public  void excluirOcorrencia(Ocorrencia a){
		regraOcorrencia.excluir(a);
	}

	
	@Override
	public  Ocorrencia consultarOcorrenciaPorId(Integer id){
		return regraOcorrencia.consultarPorId(id);
	}

	
	@Override
	public  List<Ocorrencia> consultarTodosOcorrencia(){
		return regraOcorrencia.consultarTodos();
	}
	
	
	@Override
	public  void alterarOcorrencia(Ocorrencia a){
		regraOcorrencia.alterar(a);
	}
	
	/**
	 * PASSE
	 */
	

	@Override
	public void InserirPasse(Passe p) {
		regraPasse.inserir(p);
		
	}

	@Override
	public void excluirPasse(Passe p) {
		regraPasse.excluir(p);
		
	}

	@Override
	public Passe consultarPassePorId(Integer id) {
		return regraPasse.consultarPorId(id);
	}

	@Override
	public List<Passe> consultarTodosPasses() {
		return regraPasse.consultarTodos();
	}

	@Override
	public void alterarPasse(Passe p) {
		// TODO Auto-generated method stub
		
	}

	
}
